from pandas import read_excel, DataFrame
from typing import List, Dict


def union_excel(data: List[Dict], save_path: str):
    """
    合并excel表格
    :param data: [{'key': '男性全名', 'sheet_name': 'Sheet1', 'file': 'E:/test/1.xlsx'}]
    :param save_path: 保存路径
    """
    f = data[0]
    key = f.get('key')
    df = read_excel(f.get('file'), sheet_name=f.get('sheet_name'))
    for index, value in enumerate(data):  # type: int, dict
        if index == 0:
            continue
        df1 = read_excel(value.get('file'), sheet_name=value.get('sheet_name'))
        df = df.merge(df1, left_on=key, right_on=value.get('key'))
    df.to_excel(save_path, index=False)


if __name__ == '__main__':
    li = [
        {'key': '男性全名', 'sheet_name': 'Sheet1', 'file': 'E:/test/1.xlsx'},
        {'key': '男性全名', 'sheet_name': 'Sheet1', 'file': 'E:/test/2.xlsx'},
        {'key': '男性全名', 'sheet_name': 'Sheet1', 'file': 'E:/test/3.xlsx'},
    ]
    union_excel(li, './a.xlsx')
